Handle _gtk_text_line_get_data() returning NULL in all cases. (Coverity)
authorMatthias Clasen <mclasen@redhat.com>
Wed, 12 Apr 2006 16:28:54 +0000 (16:28 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 12 Apr 2006 16:28:54 +0000 (16:28 +0000)
2006-04-12  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtktextlayout.c (gtk_text_layout_validate_yrange):
Handle _gtk_text_line_get_data() returning NULL in all
cases.  (Coverity)

ChangeLog
ChangeLog.pre-2-10
gtk/gtktextlayout.c

index d9854a2576712e1195c4f881fb2e9dcd96137168..0287bd4f4731fe76f7ab98aa5726faa7f2136790 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2006-04-12  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtktextlayout.c (gtk_text_layout_validate_yrange): 
+       Handle _gtk_text_line_get_data() returning NULL in all
+       cases.  (Coverity)
+
        * gtk/gtkuimanager.c: Make find_menu_position and
        find_toolbar_position void.  (#338100)
 
index d9854a2576712e1195c4f881fb2e9dcd96137168..0287bd4f4731fe76f7ab98aa5726faa7f2136790 100644 (file)
@@ -1,5 +1,9 @@
 2006-04-12  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtktextlayout.c (gtk_text_layout_validate_yrange): 
+       Handle _gtk_text_line_get_data() returning NULL in all
+       cases.  (Coverity)
+
        * gtk/gtkuimanager.c: Make find_menu_position and
        find_toolbar_position void.  (#338100)
 
index 85ff8966e2b972157b91ee4a860e5348b55c3e7d..1077573fcedc5c97d4f1e66fbe821266d0a5b2f6 100644 (file)
@@ -943,16 +943,20 @@ gtk_text_layout_validate_yrange (GtkTextLayout *layout,
       GtkTextLineData *line_data = _gtk_text_line_get_data (line, layout);
       if (!line_data || !line_data->valid)
         {
-          gint old_height = line_data ? line_data->height : 0;
+          gint old_height, new_height;
+         
+         old_height = line_data ? line_data->height : 0;
 
           _gtk_text_btree_validate_line (_gtk_text_buffer_get_btree (layout->buffer),
                                          line, layout);
           line_data = _gtk_text_line_get_data (line, layout);
 
-          delta_height += line_data->height - old_height;
+         new_height = line_data ? line_data->height : 0;
+
+          delta_height += new_height - old_height;
           
           first_line = line;
-          first_line_y = -seen - line_data->height;
+          first_line_y = -seen - new_height;
           if (!last_line)
             {
               last_line = line;
@@ -960,7 +964,7 @@ gtk_text_layout_validate_yrange (GtkTextLayout *layout,
             }
         }
 
-      seen += line_data->height;
+      seen += line_data ? line_data->height : 0;
       line = _gtk_text_line_previous (line);
     }
 
@@ -972,13 +976,16 @@ gtk_text_layout_validate_yrange (GtkTextLayout *layout,
       GtkTextLineData *line_data = _gtk_text_line_get_data (line, layout);
       if (!line_data || !line_data->valid)
         {
-          gint old_height = line_data ? line_data->height : 0;
+          gint old_height, new_height;
+         
+         old_height = line_data ? line_data->height : 0;
 
           _gtk_text_btree_validate_line (_gtk_text_buffer_get_btree (layout->buffer),
                                          line, layout);
           line_data = _gtk_text_line_get_data (line, layout);
+         new_height = line_data ? line_data->height : 0;
 
-          delta_height += line_data->height - old_height;
+          delta_height += new_height - old_height;
           
           if (!first_line)
             {
@@ -986,10 +993,10 @@ gtk_text_layout_validate_yrange (GtkTextLayout *layout,
               first_line_y = seen;
             }
           last_line = line;
-          last_line_y = seen + line_data->height;
+          last_line_y = seen + new_height;
         }
 
-      seen += line_data->height;
+      seen += line_data ? line_data->height : 0;
       line = _gtk_text_line_next_excluding_last (line);
     }